package com.spzx.product.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.spzx.common.core.exception.ServiceException;
import com.spzx.common.core.utils.StringUtils;
import com.spzx.product.domain.ProductUnit;
import com.spzx.product.mapper.ProductUnitMapper;
import com.spzx.product.service.IProductUnitService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * 商品单位 服务实现类
 * </p>
 *
 * @author lee
 * @since 2024-07-13
 */
@Service
public class ProductUnitServiceImpl extends ServiceImpl<ProductUnitMapper, ProductUnit> implements IProductUnitService {



    @Override
    public List<ProductUnit> selectProductUnitList(ProductUnit productUnit) {
        LambdaQueryWrapper<ProductUnit> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.like(StringUtils.hasText(productUnit.getName()),ProductUnit::getName,productUnit.getName());
        return baseMapper.selectList(queryWrapper);
    }

    @Override
    public int insertUnit(ProductUnit productUnit) {
        Long count = baseMapper.selectCount(new LambdaQueryWrapper<ProductUnit>().eq(ProductUnit::getName, productUnit.getName()));
        if (count > 0) {
            throw new ServiceException("该单位已存在");
        }
        return baseMapper.insert(productUnit);
    }

    @Override
    public int updateUnit(ProductUnit productUnit) {
        ProductUnit productUnitDB = baseMapper.selectOne(new LambdaQueryWrapper<ProductUnit>().eq(ProductUnit::getId, productUnit.getId()));
        if (productUnitDB!=null) {
            if (productUnitDB.getName().equals(productUnit.getName())){
                return 1;
            }
        }
        Long count = baseMapper.selectCount(new LambdaQueryWrapper<ProductUnit>().eq(ProductUnit::getName, productUnit.getName()));
        if (count>0){
            throw new ServiceException("该单位已存在");
        }
        return baseMapper.updateById(productUnit);
    }
}
